Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit f2cd9e971bf56ed44013de819c3003534fba8a15


Parents : 779af8b
Author : Ivan <ivan@quad4.io>
Signature : Signature validation error
Date : 2026-05-02T23:09:23-05:00

refactor(locales): remove unused game-related actions from localization files

Changes
Diff

diff --git a/meshchatx/src/frontend/locales/de.json b/meshchatx/src/frontend/locales/de.json
index 84d0459e..dfc79e59 100644
--- a/meshchatx/src/frontend/locales/de.json
+++ b/meshchatx/src/frontend/locales/de.json
@@ -2509,20 +2509,10 @@
"action_sync_desc": "Mit dem Propagationsknoten synchronisieren",
"action_compose": "Nachricht verfassen",
"action_compose_desc": "Neue LXMF-Nachricht",
- "action_orbit": "Orbit umschalten",
- "action_orbit_desc": "Orbit-Kamera im Netzwerkgraph",
"action_getting_started": "Erste Schritte",
"action_getting_started_desc": "Einrichtungsanleitung öffnen",
"action_changelog": "Änderungsprotokoll",
- "action_changelog_desc": "Letzte Änderungen",
- "action_bouncing_balls": "Bouncing Balls",
- "action_bouncing_balls_desc": "Physik-Demo im Graph",
- "action_falling_skies": "Falling Skies",
- "action_falling_skies_desc": "Neue Knoten oben im Visualizer einfallen lassen",
- "action_snake": "Mesh Snake",
- "action_snake_desc": "Fressen Sie jeden Knoten. Ihr Schwanz wächst mit jedem gesammelten Knoten.",
- "action_pong": "Mesh Pong",
- "action_pong_desc": "Du gegen die KI. Der Punktestand wird oben angezeigt."
+ "action_changelog_desc": "Letzte Änderungen"
},
"settings": {
"shortcut_saved": "Shortcut saved",
@@ -2590,8 +2580,6 @@
"multi_hops": "2+ Hops",
"clear": "Clear",
"show_labels": "Show all labels",
- "bouncing_balls": "Bouncing balls mode",
- "orbit_mode": "Orbit mode",
"show_edges": "Show edges",
"show_tooltips": "Show tooltips",
"show_rssi": "Show RSSI",
@@ -2619,13 +2607,7 @@
"failed_load": "Netzwerkdaten laden fehlgeschlagen",
"max_hops_filter": "Max. Hops",
"show_disabled_interfaces": "Offline-Interfaces anzeigen",
- "show_discovered_interfaces": "Entdeckte Interfaces anzeigen",
- "snake_win": "Du hast jeden Knoten gefressen.",
- "snake_hit_self": "Eigene Spur getroffen. Game over.",
- "snake_hint": "Pfeiltasten oder WASD zum Steuern. Friss alle Knoten ohne die eigene Spur zu kreuzen.",
- "pong_hint": "W und S bewegen dein Paddle (links). Rechts spielt die KI. Wer zuerst 7 Punkte hat, gewinnt.",
- "pong_win_you": "Du gewinnst.",
- "pong_win_ai": "KI gewinnt."
+ "show_discovered_interfaces": "Entdeckte Interfaces anzeigen"
},
"banishment": {
"title": "Banished",

diff --git a/meshchatx/src/frontend/locales/en.json b/meshchatx/src/frontend/locales/en.json
index b586afd4..6c9fd18d 100644
--- a/meshchatx/src/frontend/locales/en.json
+++ b/meshchatx/src/frontend/locales/en.json
@@ -1382,8 +1382,6 @@
"multi_hops": "2+ Hops",
"clear": "Clear",
"show_labels": "Show all labels",
- "bouncing_balls": "Bouncing balls mode",
- "orbit_mode": "Orbit mode",
"show_edges": "Show edges",
"show_tooltips": "Show tooltips",
"show_rssi": "Show RSSI",
@@ -1411,13 +1409,7 @@
"failed_load": "Failed to load network data",
"max_hops_filter": "Max hops",
"show_disabled_interfaces": "Show offline interfaces",
- "show_discovered_interfaces": "Show discovered interfaces",
- "snake_win": "You ate every node on the graph.",
- "snake_hit_self": "Self-collision. Game over.",
- "snake_hint": "Arrow keys or WASD to steer. Eat every node without crossing your tail.",
- "pong_hint": "W and S move your paddle (left). Right paddle is AI. First to 7 points wins.",
- "pong_win_you": "You win.",
- "pong_win_ai": "AI wins."
+ "show_discovered_interfaces": "Show discovered interfaces"
},
"banishment": {
"title": "Banished",
@@ -2452,6 +2444,13 @@
"title": "Getting Started",
"welcome": "Welcome to",
"welcome_desc": "The future of off-grid communication. Secure, decentralized, and unstoppable.",
+ "migration_title": "Earlier install folder detected",
+ "migration_desc": "Data was found in .reticulum-meshchat. Copy it into .reticulum-meshchatx and restart, or start fresh and leave the old folder as-is.",
+ "migration_migrate": "Copy to .reticulum-meshchatx",
+ "migration_fresh": "Start fresh",
+ "migration_working": "Updating storage…",
+ "migration_done_restart": "Restart the app to use the new folder.",
+ "migration_failed": "Could not update storage.",
"security": "Security & Performance",
"security_desc": "Massive improvements in speed, security, and crash recovery.",
"security_desc_page": "Massive improvements in speed, security, and integrity with built-in crash recovery.",
@@ -2630,16 +2629,6 @@
"action_sync_desc": "Sync with your propagation node",
"action_compose": "Compose Message",
"action_compose_desc": "New LXMF message",
- "action_orbit": "Toggle Orbit",
- "action_orbit_desc": "Orbit camera in network graph",
- "action_bouncing_balls": "Bouncing Balls",
- "action_bouncing_balls_desc": "Physics demo on the graph",
- "action_falling_skies": "Falling Skies",
- "action_falling_skies_desc": "Drop new graph nodes from the top of the visualizer",
- "action_snake": "Mesh Snake",
- "action_snake_desc": "Eat every node. Your tail grows with every node you collect.",
- "action_pong": "Mesh Pong",
- "action_pong_desc": "You vs AI. The score is shown at the top.",
"action_getting_started": "Getting Started",
"action_getting_started_desc": "Open the setup guide",
"action_changelog": "Changelog",

diff --git a/meshchatx/src/frontend/locales/es.json b/meshchatx/src/frontend/locales/es.json
index ad38ebff..a03704cb 100644
--- a/meshchatx/src/frontend/locales/es.json
+++ b/meshchatx/src/frontend/locales/es.json
@@ -1382,8 +1382,6 @@
"multi_hops": "2+ Hops",
"clear": "Despejado",
"show_labels": "Mostrar todas las etiquetas",
- "bouncing_balls": "Modo de bolas de rebote",
- "orbit_mode": "Modo de órbita",
"show_edges": "Mostrar bordes",
"show_tooltips": "Mostrar puntas de herramienta",
"show_rssi": "Mostrar RSSI",
@@ -1411,13 +1409,7 @@
"failed_load": "Failed to load network data",
"max_hops_filter": "Max Hops",
"show_disabled_interfaces": "Mostrar interfaces offline",
- "show_discovered_interfaces": "Mostrar interfaces descubiertas",
- "snake_win": "Te comiste todos los nodos en el gráfico.",
- "snake_hit_self": "Auto-colisión. Se acabó el juego.",
- "snake_hint": "Llaves de flecha o WASD para dirigir. Come cada nodo sin cruzar la cola.",
- "pong_hint": "W y S mueven su paleta (izquierda). El paddle derecho es AI. Primero a 7 puntos gana.",
- "pong_win_you": "Tú ganas.",
- "pong_win_ai": "AI gana."
+ "show_discovered_interfaces": "Mostrar interfaces descubiertas"
},
"banishment": {
"title": "Desterrados",
@@ -2630,16 +2622,6 @@
"action_sync_desc": "Sincronización con su nodo de propagación",
"action_compose": "Mensaje completo",
"action_compose_desc": "Nuevo mensaje LXMF",
- "action_orbit": "Toggle Orbit",
- "action_orbit_desc": "Cámara de órbita en gráfico de red",
- "action_bouncing_balls": "Bouncing Balls",
- "action_bouncing_balls_desc": "Demo físico en el gráfico",
- "action_falling_skies": "Cielos caídos",
- "action_falling_skies_desc": "Suelta nuevos nodos gráficos desde la parte superior del visualizador",
- "action_snake": "Mesh Snake",
- "action_snake_desc": "Come cada nodo. Tu cola crece con cada nodo recolectado.",
- "action_pong": "Mesh Pong",
- "action_pong_desc": "Usted contra la IA. La puntuación se muestra en la parte superior.",
"action_getting_started": "Comienzo",
"action_getting_started_desc": "Abra la guía de configuración",
"action_changelog": "Cambio",

diff --git a/meshchatx/src/frontend/locales/fr.json b/meshchatx/src/frontend/locales/fr.json
index afba4eff..710be461 100644
--- a/meshchatx/src/frontend/locales/fr.json
+++ b/meshchatx/src/frontend/locales/fr.json
@@ -1382,8 +1382,6 @@
"multi_hops": "2 + Houblon",
"clear": "Effacer",
"show_labels": "Afficher toutes les étiquettes",
- "bouncing_balls": "Mode boules tournantes",
- "orbit_mode": "Mode Orbite",
"show_edges": "Afficher les bords",
"show_tooltips": "Afficher les touches d'outils",
"show_rssi": "Afficher RSSI",
@@ -1411,13 +1409,7 @@
"failed_load": "Impossible de charger les données du réseau",
"max_hops_filter": "Max houblon",
"show_disabled_interfaces": "Afficher les interfaces hors ligne",
- "show_discovered_interfaces": "Afficher les interfaces découvertes",
- "snake_win": "Vous avez mangé tous les nœuds du graphique.",
- "snake_hit_self": "L'autocollision. C'est fini.",
- "snake_hint": "Clés fléchées ou WASD pour diriger. Mangez chaque noeud sans traverser votre queue.",
- "pong_hint": "W et S bougez votre pagaie (à gauche). La pagaie droite, c'est l'IA. Première à 7 points gagne.",
- "pong_win_you": "Tu gagnes.",
- "pong_win_ai": "L'IA gagne."
+ "show_discovered_interfaces": "Afficher les interfaces découvertes"
},
"banishment": {
"title": "Interdit",
@@ -2630,16 +2622,6 @@
"action_sync_desc": "Synchronisez avec votre nœud de propagation",
"action_compose": "Composer un message",
"action_compose_desc": "Nouveau message LXMF",
- "action_orbit": "Couper l'orbite",
- "action_orbit_desc": "Caméra Orbit dans le graphique réseau",
- "action_bouncing_balls": "Balles rebondissantes",
- "action_bouncing_balls_desc": "Démo physique sur le graphique",
- "action_falling_skies": "Ciel de chute",
- "action_falling_skies_desc": "Déposer de nouveaux nœuds graphiques à partir du haut du visualisateur",
- "action_snake": "Serpent de Mesh",
- "action_snake_desc": "Mangez chaque nœud. Votre queue grandit avec chaque nœud collecté.",
- "action_pong": "Mesh Pong",
- "action_pong_desc": "Vous contre l'IA. Le score est affiché en haut.",
"action_getting_started": "Commencer",
"action_getting_started_desc": "Ouvrir le guide de configuration",
"action_changelog": "Changer de journal",

diff --git a/meshchatx/src/frontend/locales/it.json b/meshchatx/src/frontend/locales/it.json
index 798d7fe5..44bdd1ea 100644
--- a/meshchatx/src/frontend/locales/it.json
+++ b/meshchatx/src/frontend/locales/it.json
@@ -1434,8 +1434,6 @@
"multi_hops": "2+ Salti",
"clear": "Cancella",
"show_labels": "Mostra tutte le etichette",
- "bouncing_balls": "Modalità palle rimbalzanti",
- "orbit_mode": "Modalità orbita",
"show_edges": "Mostra bordi",
"show_tooltips": "Mostra tooltip",
"show_rssi": "Mostra RSSI",
@@ -1463,13 +1461,7 @@
"failed_load": "Impossibile caricare i dati di rete",
"max_hops_filter": "Salti max",
"show_disabled_interfaces": "Mostra interfacce offline",
- "show_discovered_interfaces": "Mostra interfacce scoperte",
- "snake_win": "Hai mangiato ogni nodo nel grafo.",
- "snake_hit_self": "Collisione con te stesso. Game over.",
- "snake_hint": "Frecce o WASD per sterzare. Mangia tutti i nodi senza incrociare la coda.",
- "pong_hint": "W e S muovono la tua racchetta (sinistra). A destra c'è la IA. Vince chi arriva a 7 punti.",
- "pong_win_you": "Hai vinto.",
- "pong_win_ai": "Vince la IA."
+ "show_discovered_interfaces": "Mostra interfacce scoperte"
},
"banishment": {
"title": "Esiliati",
@@ -2630,16 +2622,6 @@
"action_sync_desc": "Sincronizza con il nodo di propagazione",
"action_compose": "Componi Messaggio",
"action_compose_desc": "Nuovo messaggio LXMF",
- "action_orbit": "Attiva/Disattiva Orbita",
- "action_orbit_desc": "Camera orbita nel grafico di rete",
- "action_bouncing_balls": "Palle Rimbalzanti",
- "action_bouncing_balls_desc": "Demo fisica sul grafico",
- "action_falling_skies": "Falling Skies",
- "action_falling_skies_desc": "Nuovi nodi cadono dall'alto nel visualizzatore",
- "action_snake": "Mesh Snake",
- "action_snake_desc": "Mangia ogni nodo. La tua coda cresce con ogni nodo raccolto.",
- "action_pong": "Mesh Pong",
- "action_pong_desc": "Tu contro l'IA. Il punteggio è mostrato in alto.",
"action_getting_started": "Guida Introduttiva",
"action_getting_started_desc": "Apri la guida di configurazione",
"action_changelog": "Changelog",

diff --git a/meshchatx/src/frontend/locales/nl.json b/meshchatx/src/frontend/locales/nl.json
index b6fcda9a..f57a2773 100644
--- a/meshchatx/src/frontend/locales/nl.json
+++ b/meshchatx/src/frontend/locales/nl.json
@@ -1382,8 +1382,6 @@
"multi_hops": "2+ hop",
"clear": "Wissen",
"show_labels": "Alle labels tonen",
- "bouncing_balls": "Stoomballenmodus",
- "orbit_mode": "Omloopmodus",
"show_edges": "Randen tonen",
"show_tooltips": "Hulpballonnen tonen",
"show_rssi": "RSSI tonen",
@@ -1411,13 +1409,7 @@
"failed_load": "Kon netwerkgegevens niet laden",
"max_hops_filter": "Max. hop",
"show_disabled_interfaces": "Offline interfaces tonen",
- "show_discovered_interfaces": "Ontdekte interfaces tonen",
- "snake_win": "Je at elke knoop op de grafiek.",
- "snake_hit_self": "Zelfbotsing. Game over.",
- "snake_hint": "Pijltjestoetsen of WASD om te sturen. Eet elke knoop zonder je staart te kruisen.",
- "pong_hint": "W en S beweeg je peddel (links). Rechterpeddel is Al. Eerste tot 7 punten wint.",
- "pong_win_you": "Jij wint.",
- "pong_win_ai": "Al wint."
+ "show_discovered_interfaces": "Ontdekte interfaces tonen"
},
"banishment": {
"title": "Verbannen",
@@ -2630,16 +2622,6 @@
"action_sync_desc": "Synchroniseren met uw propagatieknooppunt",
"action_compose": "Bericht samenstellen",
"action_compose_desc": "Nieuw LXMF-bericht",
- "action_orbit": "Schakel baan aan/uit",
- "action_orbit_desc": "Orbit camera in netwerkgrafiek",
- "action_bouncing_balls": "Bouncingballen",
- "action_bouncing_balls_desc": "Natuurkunde demo op de grafiek",
- "action_falling_skies": "Vallende luchten",
- "action_falling_skies_desc": "Nieuwe grafieknodes uit de top van de visualiser gooien",
- "action_snake": "Maasslang",
- "action_snake_desc": "Eet elke knoop. Je staart groeit met elke verzamelde knoop.",
- "action_pong": "Mesh Pong",
- "action_pong_desc": "Jij tegen de AI. De score wordt bovenaan getoond.",
"action_getting_started": "Starten",
"action_getting_started_desc": "De setup-handleiding openen",
"action_changelog": "Changelog",

diff --git a/meshchatx/src/frontend/locales/ru.json b/meshchatx/src/frontend/locales/ru.json
index 305ae875..9353340c 100644
--- a/meshchatx/src/frontend/locales/ru.json
+++ b/meshchatx/src/frontend/locales/ru.json
@@ -2509,16 +2509,6 @@
"action_sync_desc": "Синхронизация с узлом ретрансляции",
"action_compose": "Написать сообщение",
"action_compose_desc": "Новое сообщение LXMF",
- "action_orbit": "Переключить Orbit",
- "action_orbit_desc": "Камера Orbit на графе сети",
- "action_bouncing_balls": "Прыгающие шарики",
- "action_bouncing_balls_desc": "Демонстрация физики на графе",
- "action_falling_skies": "Falling Skies",
- "action_falling_skies_desc": "Новые узлы падают сверху в визуализаторе",
- "action_snake": "Mesh Snake",
- "action_snake_desc": "Съешьте все узлы. Ваш хвост растет с каждым собранным узлом.",
- "action_pong": "Mesh Pong",
- "action_pong_desc": "Вы против ИИ. Счет отображается сверху.",
"action_getting_started": "Начало работы",
"action_getting_started_desc": "Открыть мастер настройки",
"action_changelog": "Список изменений",
@@ -2590,8 +2580,6 @@
"multi_hops": "2+ Hops",
"clear": "Clear",
"show_labels": "Show all labels",
- "bouncing_balls": "Bouncing balls mode",
- "orbit_mode": "Orbit mode",
"show_edges": "Show edges",
"show_tooltips": "Show tooltips",
"show_rssi": "Show RSSI",
@@ -2619,13 +2607,7 @@
"failed_load": "Failed to load network data",
"max_hops_filter": "Макс. хопов",
"show_disabled_interfaces": "Показать отключенные интерфейсы",
- "show_discovered_interfaces": "Показать обнаруженные интерфейсы",
- "snake_win": "Съедены все узлы на графе.",
- "snake_hit_self": "Столкновение с собой. Конец игры.",
- "snake_hint": "Стрелки или WASD. Съешьте все узлы, не пересекая хвост.",
- "pong_hint": "W и S — ваша ракетка (слева). Справа играет ИИ. Победа при 7 очках.",
- "pong_win_you": "Вы выиграли.",
- "pong_win_ai": "Победил ИИ."
+ "show_discovered_interfaces": "Показать обнаруженные интерфейсы"
},
"banishment": {
"title": "Banished",

diff --git a/meshchatx/src/frontend/locales/zh.json b/meshchatx/src/frontend/locales/zh.json
index cc400a5f..108cb797 100644
--- a/meshchatx/src/frontend/locales/zh.json
+++ b/meshchatx/src/frontend/locales/zh.json
@@ -1382,8 +1382,6 @@
"multi_hops": "2+ 跳",
"clear": "清除",
"show_labels": "显示所有标签",
- "bouncing_balls": "弹跳球模式",
- "orbit_mode": "轨道模式",
"show_edges": "显示边缘",
"show_tooltips": "显示工具提示",
"show_rssi": "显示 RSSI",
@@ -1411,13 +1409,7 @@
"failed_load": "加载网络数据失败",
"max_hops_filter": "最大跳数",
"show_disabled_interfaces": "显示离线接口",
- "show_discovered_interfaces": "显示已发现接口",
- "snake_win": "您已吃掉图中每个节点!",
- "snake_hit_self": "自我碰撞。游戏结束。",
- "snake_hint": "方向键或 WASD 控制。吃掉每个节点而不穿过自己的尾巴。",
- "pong_hint": "W 和 S 控制您的球拍(左侧)。右侧球拍是 AI。先得 7 分者获胜。",
- "pong_win_you": "您赢了!",
- "pong_win_ai": "AI 获胜。"
+ "show_discovered_interfaces": "显示已发现接口"
},
"banishment": {
"title": "放逐",
@@ -2630,16 +2622,6 @@
"action_sync_desc": "与您的传播节点同步",
"action_compose": "撰写消息",
"action_compose_desc": "新建 LXMF 消息",
- "action_orbit": "切换轨道",
- "action_orbit_desc": "网络图中的轨道相机",
- "action_bouncing_balls": "弹跳球",
- "action_bouncing_balls_desc": "图上的物理演示",
- "action_falling_skies": "坠落天空",
- "action_falling_skies_desc": "从可视化工具上方丢落新图节点",
- "action_snake": "网格贪吃蛇",
- "action_snake_desc": "吃掉每个节点。您的尾巴会随着收集的每个节点而增长。",
- "action_pong": "乒乓",
- "action_pong_desc": "您对 AI。分数显示在顶部。",
"action_getting_started": "开始使用",
"action_getting_started_desc": "打开设置指南",
"action_changelog": "更新日志",


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────